The amount of facts, information, and other data that are available online and in various data resources and reference works has grown tremendously in the recent past and will likely continue to expand exponentially. However, as the amount of data available increases, the task of identifying specific data of interest becomes correspondingly more difficult. Traditionally, hard copy reference works, such as encyclopedias, have been consulted to obtain information on a variety of topics. A person interested in reading information about a specific topic would either consult a subject index typically provided in the last volume of an encyclopedia, or simply select an appropriate volume to page through and find the desired information, based on the letter of the alphabet of the topic. For example, information on the “Civil War” might be found by selecting the encyclopedia volume that includes topics starting with the letter “C,” and then paging through the topics that are alphabetically arranged within that volume, until the pages for the section on the Civil War topic are found.
The task of accessing a desired topic or specific information relating to a topic has been made much easier with the availability of relatively low-cost software reference works that are analogous to hard copy encyclopedias. In addition to text and images, the software reference works also typically include maps, animations, videos, and sound files relating to selected topics. Microsoft Corporation's ENCARTA™ Reference Library is an excellent example of such a software reference product. Currently, several gigabytes of data can be provided on a single digital video disk (DVD) in a software reference library. The Internet includes terabytes of data that can be used to supplement the data in a reference work. Unlike a hardcopy reference work, when attempting to access information in software reference libraries or on the Internet, it is not possible for a person to physically thumb through the data to find information based upon the initial letters of keywords or topics of interest. However, software reference works include search facilities that are designed to perform an analogous function by enabling a user to input a topic, or one or more keywords, a phrase, or question in a text box. The user then typically either presses the Enter key or selects a “Go” button or other equivalent control to initiate a search of the available data based upon the text input by the user.
In response to the user initiating the search as described above, a search engine will typically parse the text that was input and then produce a listing of search topics, sometimes many pages long, of possible “hits” that may be appropriate to the user's input. Search modules may rank these “hits” or search results according to their likely relevance to the input text, placing those that appear to be more relevant first in the list. For example, if a user inputs several keywords, hits that have more of the keywords will be listed before hits that have fewer keywords. However, it can be somewhat frustrating for a user reviewing the search results produced by such searches, since the hits may have little apparent relevance to the information that the user desired to find. One reason that the results of a search may not be as expected is because the user may be looking for a particular category of information, but the words input by the user can be interpreted by the search module in a different manner, so that the search returns results in an entirely different category. For example, if the user enters the word “turkey” hoping to find information on the correct temperature at which to roast a turkey, the results of the query may be a list of information related to the country “Turkey,” or general information about the bird “turkey,” or about commercial establishments that sell roasted or smoked turkeys. Accordingly, it would be preferable to provide a user an option for limiting the search results that will be returned to a specific category, before the search is actually carried out.
Reference works will sometimes enable a user to select a specific category prior to entry of a search query. For example, a user might selectively make a search for a geographic location by initially limiting the search to data maintained in an atlas database. Alternatively, after the user enters a query, the search engine may provide a list of alternatives in different categories from which the user may choose to more accurately access information of interest. For example, one search engine developed for use on the Internet (http://www.askjeeves.com) enables a user to enter a query as a plain language question. After the query is entered, the search engine parses the query text and displays a list of several possible questions representing different questions that may be related for which the search engine can provide information, as well as a list of related search terms, and a list of the search results for the search that was done in response to the query previously entered by the user. By selecting one of the proposed queries or search terms that seems to more closely indicate the information of interest, the user may be able to better access the desired information, since the search results returned in response to the user's query may not be very closely related to the desired information.
Often, searches can be implemented by entering only a single word, particularly, if the user has the ability to choose among various search strategies related to the word, and/or the ability to choose among items that are related to the word. For many words, it may be that typing only a portion of the word is sufficient to indicate the word in its entirety, or at least to narrow the field of choices regarding related matching items. Microsoft Corporation's INTERNET EXPLORER™ and other programs provide auto completion of text entries, using entries that were previously input in the program, but this capability does not extend to indicating proposed search strategies or proposed matching items, based upon a partial entry of a word or phrase. Almost every program that proposes alternative searches or keywords does so only after the user has actually completed a query and entered it. Instead of requiring the user to enter a query before responding, it would be desirable to dynamically list proposed search strategies and possible matches that correspond to the characters input by the use, and to refine the list of proposed search strategies and matches as the user continues to input additional letters in a text box. Such an approach is analogous in some respects to the manual technique applied by a person in looking up information in an index or listing based upon the alphabetical order of the characters in a word.
Preferably, after at least a minimum number of characters are entered by a user, the dynamically refined matches should be listed in a preferred order of priority, with the matching items having the characters input by the user as their first characters, followed by alternative choices that include the characters input by the user, as part of other words in the matching items. A user should also have the option to enter all of the characters of a keyword or multiple words, to enable full text searching. After dynamically modifying the list of proposed search strategies and matches corresponding to the characters that have been input, a user should be able to select one of the search strategies or matches that will likely yield the desired information the user is attempting to find. This approach would be extremely helpful for children, who may not be comfortable typing long words, and for people whose native language (e.g., the Asiatic languages) is relatively complex and not easily entered in a text box using a keyboard. The prior art does not provide any corresponding dynamically updated listing of search strategies or matching items.